package 多线程4;

import java.lang.reflect.Executable;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class TestDemo3 {
    //使用一下标准库中的线程池
    public static void main(String[] args) {
     //先创建出一个线程池的实例
        ExecutorService service = Executors.newFixedThreadPool(10);
        for (int i = 0; i < 20; i++) {
            service.submit(new Runnable() {
                @Override
                public void run() {
                    System.out.println("hello");
                }
            });
        }
        /**
         *   当前线程池里有10个工作线程.
         *   往任务队列中加入了20个任务.
         *   此时这10个工作线程就会从任务队列中,先取出10个任务,然后并发执行这些任务.
         *   这些线程谁执行完了当前的任务,谁就去任务队列中重新取一个新的任务.
         *   直到把线程池任务队列中的任务都取完了.此时线程池的工作线程就阻塞等待(等到新的任务的到来)
         */

    }
}
